<?php
/* удаление неактивных пользователей
 * @return bool - результат удаление записей
 */
function delete_inactive_data()
{
    $rez = true;
    global $CFG;
    require_once($CFG->libdir."/moodlelib.php");
    
    $table = 'user';
    // удаляем пользователей, зарегиных более полугода назад, ни разу не входивших на сайт
    $select = " timemodified < ". (time()-(3600*24*183)) ." AND lastlogin = 0 
            AND lastaccess = 0 AND firstaccess = 0 ";
	if ( !$records = get_records_select($table,$select) )
	{
	    return false;
	}
    foreach ($records as $record)
    {
        mtrace("User: id(".$record->id.") ".$record->firstname." ".$record->lastname." has been deleted...<br/>");
        $rez = delete_user($record) AND $rez;
    }
    return $rez;
}
/* запуск функции удаления больших файлов 
 * @param array $types - массив дозволенных расширений
 * @return array - список удаленных файлов
 */ 
function delete_deprecated_files($types, $fsize)
{
    global $CFG;
    
    if ( empty($types) OR !is_array($types) )
    {
        return false;
    }
    return delete_files($CFG->dataroot, $types, $fsize*1024);
}
/* удаление файлов, превышающих допустимый размер
 * @param string $dir - имя директории
 * @param array $types - массив допустимых типов
 * @param int $fsize - допустимый размер файла
 * @return bool
 */
function delete_files($dir, $types, $fsize)
{
    $inside_dir = scandir($dir);
    // избавляемся от служебных директорий
    unset($inside_dir[0]);
    unset($inside_dir[1]);
    
    foreach ($inside_dir as $value)
    {// обход содержимого директории
        if ( is_dir($dir.'/'.$value) )
        {// если директория - повторный вызов
            delete_files($dir.'/'.$value, $types, $fsize);
        }else if ( is_file($dir.'/'.$value) AND filesize($dir.'/'.$value) > $fsize 
                AND is_valid_ext($value, $types) )
        {// если файл соответствующего типа, размер которого превышен - удаляем
            unlink($dir.'/'.$value);
            mtrace($dir.'/'.$value);
        }
    }
    return true;
}
/* проверка типов файлов
 * @param string $filename - имя файла
 * @param array $types - массив допустимых типов
 * @return bool
 */
function is_valid_ext($filename, $types)
{
    $tmp = explode('.', $filename); 
    $filetype = $tmp[count($tmp)-1];
    foreach ($types as $type)
    {
        if (".".$filetype == trim($type) OR $filetype == trim($type))
        {
            return true;
        }    
    }
    return false;
}
?>